home *** CD-ROM | disk | FTP | other *** search
/ QRZ! Ham Radio 8 / QRZ Ham Radio Callsign Database - Volume 8.iso / mac / files / t_sys5 / unixcpio.gz / unixnet.cpio / mkdep.bsd < prev    next >
Text File  |  1994-07-11  |  1KB  |  73 lines

  1. #! /bin/sh
  2. #
  3. #    @(#)mkdep.sh    1.7    (Berkeley)    10/13/87
  4. #
  5.  
  6. PATH=/bin:/usr/bin:/usr/ucb
  7. export PATH
  8.  
  9. if [ $# = 0 ] ; then
  10.     echo 'usage: mkdep [-p] [-f makefile] [flags] file ...'
  11.     exit 1
  12. fi
  13.  
  14. MAKE=Makefile            # default makefile name is "Makefile"
  15. case $1 in
  16.     # -f allows you to select a makefile name
  17.     -f)
  18.         MAKE=$2
  19.         shift; shift ;;
  20.  
  21.     # the -p flag produces "program: program.c" style dependencies
  22.     # so .o's don't get produced
  23.     -p)
  24.         SED='-e s;\.o;;'
  25.         shift ;;
  26. esac
  27.  
  28. if [ ! -w $MAKE ]; then
  29.     echo "mkdep: no writeable file \"$MAKE\""
  30.     exit 1
  31. fi
  32.  
  33. TMP=/tmp/mkdep$$
  34.  
  35. trap 'rm -f $TMP ; exit 1' 1 2 3 13 15
  36.  
  37. cp $MAKE ${MAKE}.bak
  38.  
  39. sed -e '/DO NOT DELETE THIS LINE/,$d' < $MAKE > $TMP
  40.  
  41. cat << _EOF_ >> $TMP
  42. # DO NOT DELETE THIS LINE -- mkdep uses it.
  43. # DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY.
  44.  
  45. _EOF_
  46.  
  47. cc -M $* | /bin/sed -e "s; \./; ;g" $SED | \
  48.     awk ' { \
  49.         if ($1 != prev) { \
  50.             if (rec != "") \
  51.                 print rec; rec = $0; prev = $1; \
  52.         } \
  53.         else { \
  54.             if (length(rec $2) > 78) { \
  55.                 print rec; rec = $0; \
  56.             } else \
  57.                 rec = rec " " $2 \
  58.         } \
  59.     } \
  60.     END { \
  61.         print rec \
  62.     } ' >> $TMP
  63.  
  64. cat << _EOF_ >> $TMP
  65.  
  66. # IF YOU PUT ANYTHING HERE IT WILL GO AWAY
  67. _EOF_
  68.  
  69. # copy to preserve permissions
  70. cp $TMP $MAKE
  71. rm -f ${MAKE}.bak $TMP
  72. exit 0
  73.